namespace LegoBotPrimaAbstractions
{
    public interface IBotActionController
    {
        ILegoBotPrimaWorkflow Workflow { get; }
        IWorkflowLogger Logger { get; }

        void Initialize(ILegoBotPrimaWorkflow workflow, IWorkflowLogger logger);
        IBotAction OnSetAction(IBotAction previousAction, IBotAction newAction);
        RunMode OnSetActionChangeMode(RunMode currentMode, IBotAction previousAction, IBotAction newAction);
        void OnEndAction(IBotAction action);
    }
}